package com.cyt.thrid.wechat.model.base;


import com.cyt.base.util.MD5Util;

public class TransfersEntity {

    private int amount;//【必填】企业付款金额，单位为分
    private String check_name;//【必填】校验用户姓名选项 NO_CHECK：不校验真实姓名 FORCE_CHECK：强校验真实姓名
    private String desc;//【必填】企业付款描述信息
    private String device_info;//【非必填】//终端设备号(门店号或收银设备ID)，注意：PC网页或公众号内支付请传"WEB"
    private String re_user_name;//【非必填】收款用户姓名 收款用户真实姓名。 如果check_name设置为FORCE_CHECK，则必填用户真实姓名
    private String mchid;//【必填】微信支付分配的商户号
    private String mch_appid;//【必填】微信分配的帐号ID（企业号corpid即为此appId）
    private String openid;//【必填】	商户appid下，某用户的openid
    private String partner_trade_no;//【必填】商户订单号，需保持唯一性(只能是字母或者数字，不能包含有符号)
    private String spbill_create_ip;//【必填】调用接口的机器Ip地址
    private String nonce_str;//【必填】随机字符串，不长于32位
    private String sign;//【必填】签名

    public static void main(String[] args){
        TransfersEntity entity=new TransfersEntity();
        entity.setMch_appid("wx2e756d8b6f266a5d");
        entity.setMchid("1345631801");
        entity.setNonce_str("3PG2J4ILTKCH16CQ2502SI8ZNMTM67VS");
        entity.setPartner_trade_no("100000982014120919616");
        entity.setOpenid("ohO4Gt7wVPxIT1A9GjFaMYMiZY1s");
        entity.setCheck_name("FORCE_CHECK");
        entity.setRe_user_name("张三");
        entity.setAmount(100);
        entity.setDesc("节日快乐!");
        entity.setSpbill_create_ip("10.2.3.10");
        String sign=entity.getResultSign("11111111111111111111111111111111");
        System.out.print(sign);
    }

    /**
     * 获取sign
     * */
    public String getResultSign(String key){
        StringBuffer sb=new StringBuffer();
        if(amount>0){
            sb=sb.append("amount="+amount);
        }
        if(check_name!=null&&!"".equals(check_name)){
            sb=sb.append("&check_name="+check_name);
        }
        if(desc!=null&&!"".equals(desc)){
            sb=sb.append("&desc="+desc);
        }
        if(device_info!=null&&!"".equals(device_info)){
            sb=sb.append("&device_info="+device_info);
        }
        if(mch_appid!=null&&!"".equals(mch_appid)){
            sb=sb.append("&mch_appid="+mch_appid);
        }

        if(mchid!=null&&!"".equals(mchid)){
            sb=sb.append("&mchid="+mchid);
        }
        if(nonce_str!=null&&!"".equals(nonce_str)){
            sb=sb.append("&nonce_str="+nonce_str);
        }
        if(openid!=null&&!"".equals(openid)){
            sb=sb.append("&openid="+openid);
        }
        if(partner_trade_no!=null&&!"".equals(partner_trade_no)){
            sb=sb.append("&partner_trade_no="+partner_trade_no);
        }
        if(re_user_name!=null&&!"".equals(re_user_name)){
            sb=sb.append("&re_user_name="+re_user_name);
        }
        if(spbill_create_ip!=null&&!"".equals(spbill_create_ip)){
            sb=sb.append("&spbill_create_ip="+spbill_create_ip);
        }
        System.out.println(sb.toString());
        sb.append("&key="+key);
        System.out.println(sb.toString());
        return MD5Util.MD5Encode(sb.toString()).toUpperCase();
    }

    /**
     * 获取xml
     * */
    public String getXML(){
        StringBuffer xml=new StringBuffer("<xml>");
        if(amount>0){
            xml=xml.append("<amount>"+amount+"</amount>");
        }
        if(check_name!=null&&!"".equals(check_name)){
            xml=xml.append("<check_name>"+check_name+"</check_name>");
        }
        if(desc!=null&&!"".equals(desc)){
            xml=xml.append("<desc>"+desc+"</desc>");
        }
        if(device_info!=null&&!"".equals(device_info)){
            xml=xml.append("<device_info>"+device_info+"</device_info>");
        }

        if(mch_appid!=null&&!"".equals(mch_appid)){
            xml=xml.append("<mch_appid>"+mch_appid+"</mch_appid>");
        }
        if(openid!=null&&!"".equals(openid)){
            xml=xml.append("<openid>"+openid+"</openid>");
        }
        if(mchid!=null&&!"".equals(mchid)){
            xml=xml.append("<mchid>"+mchid+"</mchid>");
        }
        if(nonce_str!=null&&!"".equals(nonce_str)){
            xml=xml.append("<nonce_str>"+nonce_str+"</nonce_str>");
        }
        if(partner_trade_no!=null&&!"".equals(partner_trade_no)){
            xml=xml.append("<partner_trade_no>"+partner_trade_no+"</partner_trade_no>");
        }
        if(re_user_name!=null&&!"".equals(re_user_name)){
            xml=xml.append("<re_user_name>"+re_user_name+"</re_user_name>");
        }
        if(spbill_create_ip!=null&&!"".equals(spbill_create_ip)){
            xml=xml.append("<spbill_create_ip>"+spbill_create_ip+"</spbill_create_ip>");
        }
        if(sign!=null&&!"".equals(sign)){
            xml=xml.append("<sign>"+sign+"</sign>");
        }
        xml=xml.append("</xml>");
        return xml.toString();
    }


    public int getAmount() {
        return amount;
    }

    public void setAmount(int amount) {
        this.amount = amount;
    }

    public String getCheck_name() {
        return check_name;
    }

    public void setCheck_name(String check_name) {
        this.check_name = check_name;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public String getDevice_info() {
        return device_info;
    }

    public void setDevice_info(String device_info) {
        this.device_info = device_info;
    }

    public String getRe_user_name() {
        return re_user_name;
    }

    public void setRe_user_name(String re_user_name) {
        this.re_user_name = re_user_name;
    }

    public String getMchid() {
        return mchid;
    }

    public void setMchid(String mchid) {
        this.mchid = mchid;
    }

    public String getMch_appid() {
        return mch_appid;
    }

    public void setMch_appid(String mch_appid) {
        this.mch_appid = mch_appid;
    }

    public String getOpenid() {
        return openid;
    }

    public void setOpenid(String openid) {
        this.openid = openid;
    }

    public String getPartner_trade_no() {
        return partner_trade_no;
    }

    public void setPartner_trade_no(String partner_trade_no) {
        this.partner_trade_no = partner_trade_no;
    }

    public String getSpbill_create_ip() {
        return spbill_create_ip;
    }

    public void setSpbill_create_ip(String spbill_create_ip) {
        this.spbill_create_ip = spbill_create_ip;
    }

    public String getNonce_str() {
        return nonce_str;
    }

    public void setNonce_str(String nonce_str) {
        this.nonce_str = nonce_str;
    }

    public String getSign() {
        return sign;
    }

    public void setSign(String sign) {
        this.sign = sign;
    }
}
